home *** CD-ROM | disk | FTP | other *** search
/ Mac Easy 2010 May / Mac Life Ubuntu.iso / casper / filesystem.squashfs / usr / src / linux-headers-2.6.28-15 / include / linux / sysrq.h < prev    next >
Encoding:
C/C++ Source or Header  |  2008-12-24  |  1.8 KB  |  78 lines

  1. /* -*- linux-c -*-
  2.  *
  3.  *    $Id: sysrq.h,v 1.3 1997/07/17 11:54:33 mj Exp $
  4.  *
  5.  *    Linux Magic System Request Key Hacks
  6.  *
  7.  *    (c) 1997 Martin Mares <mj@atrey.karlin.mff.cuni.cz>
  8.  *
  9.  *    (c) 2000 Crutcher Dunnavant <crutcher+kernel@datastacks.com>
  10.  *    overhauled to use key registration
  11.  *    based upon discusions in irc://irc.openprojects.net/#kernelnewbies
  12.  */
  13.  
  14. #ifndef _LINUX_SYSRQ_H
  15. #define _LINUX_SYSRQ_H
  16.  
  17. struct pt_regs;
  18. struct tty_struct;
  19.  
  20. /* Possible values of bitmask for enabling sysrq functions */
  21. /* 0x0001 is reserved for enable everything */
  22. #define SYSRQ_ENABLE_LOG    0x0002
  23. #define SYSRQ_ENABLE_KEYBOARD    0x0004
  24. #define SYSRQ_ENABLE_DUMP    0x0008
  25. #define SYSRQ_ENABLE_SYNC    0x0010
  26. #define SYSRQ_ENABLE_REMOUNT    0x0020
  27. #define SYSRQ_ENABLE_SIGNAL    0x0040
  28. #define SYSRQ_ENABLE_BOOT    0x0080
  29. #define SYSRQ_ENABLE_RTNICE    0x0100
  30.  
  31. struct sysrq_key_op {
  32.     void (*handler)(int, struct tty_struct *);
  33.     char *help_msg;
  34.     char *action_msg;
  35.     int enable_mask;
  36. };
  37.  
  38. #ifdef CONFIG_MAGIC_SYSRQ
  39.  
  40. extern int sysrq_on(void);
  41.  
  42. /*
  43.  * Do not use this one directly:
  44.  */
  45. extern int __sysrq_enabled;
  46.  
  47. /* Generic SysRq interface -- you may call it from any device driver, supplying
  48.  * ASCII code of the key, pointer to registers and kbd/tty structs (if they
  49.  * are available -- else NULL's).
  50.  */
  51.  
  52. void handle_sysrq(int key, struct tty_struct *tty);
  53. void __handle_sysrq(int key, struct tty_struct *tty, int check_mask);
  54. int register_sysrq_key(int key, struct sysrq_key_op *op);
  55. int unregister_sysrq_key(int key, struct sysrq_key_op *op);
  56. struct sysrq_key_op *__sysrq_get_key_op(int key);
  57.  
  58. #else
  59.  
  60. static inline int sysrq_on(void)
  61. {
  62.     return 0;
  63. }
  64. static inline int __reterr(void)
  65. {
  66.     return -EINVAL;
  67. }
  68. static inline void handle_sysrq(int key, struct tty_struct *tty)
  69. {
  70. }
  71.  
  72. #define register_sysrq_key(ig,nore) __reterr()
  73. #define unregister_sysrq_key(ig,nore) __reterr()
  74.  
  75. #endif
  76.  
  77. #endif /* _LINUX_SYSRQ_H */
  78.